Configure GCB for Service Mesh and HTTPS/2 Support with Metadata through API

This chapter describes how to configure GCB and GigaVUE-FM in your environment through API. Refer to the following section for details.

The following table provides the list of actions and their respective REST API example values.

Action REST API and Example Value

Create a Monitoring Domain

POST: /cloud/monitoringDomains

Create a Connection

POST: /cloud/kubernetesGcb/connections

Create a Source Inventory

POST: /cloud/kubernetesGcb/inventory/pods/{connectionId}

Adding F5 fields information

POST: /cloud/kubernetesGcb/trafficPolicies/f5FieldNames

Create a Traffic Policy

POST: /cloud/kubernetesGcb/trafficPolicies

Redeploy a Traffic Policy

PUT: /cloud/kubernetesGcb/trafficPolicies/redeploy/{name}

Update a Traffic Policy

PUT: /cloud/kubernetesGcb/trafficPolicies/{name}

Get a Traffic Policy

GET: /cloud/kubernetesGcb/trafficPolicies/status/{name}

Delete a Traffic Policy

DELETE: /cloud/kubernetesGcb/trafficPolicies/{name}

Delete a Connection

DELETE: /cloud/kubernetesGcb/connections/{id}

Delete a Monitoring Domain

DELETE: /cloud/monitoringDomains/{id}

Launch GigaVUE-FM

The recent GigaVUE-FM image files can be downloaded from Gigamon Customer Portal. After fetching the image, upload and launch GigaVUE-FM on your OpenStack environment. For assistance, Contact Technical Support of Gigamon or refer to the GigaVUE Cloud Suite for OpenStack Configuration Guide for more information on V Series configuration on OpenStack environment.

Create Monitoring Domain

Deploy GCB Controller Service and GCB Controller PODs

Follow the below instructions to deploy GCB Controller Service and GCB Controller PODs in your node:

  1. In your Kubernetes orchestrator, edit the GCB Controller image name, commands and the required information in a YAML file. Following is the example data to be entered in your YAML file:
    name: gcb-cntlr
    #image: gigamon/gcb-cntlr:<version>
    #Usage:/gcb-cntlr <FM IP> <FM REST Svc Port> <GCB-Cntlr REST SVC Port>
    command: [/gcb-cntlr, "12.345.67.890", '443' , '8443']
    imagePullPolicy: Always
    ports:
    - containerPort: 8443
    - containerPort: 42042
    env:
    - name: GCB_CNTLR_SERVICE_NAME
     value: "GIGAMON_GCB_CNTLR_SERVICE"
    - name: GCB_CNTLR_EXT_IP_DNS
     value: "<external IP for GigaVUE-FM to reach GCB CNTLR"
    - name: K8S_CLUSTER_ENDPOINT
     value: "https://<masternodeapiserverurl>:6443"

    Note:  The value of K8S_CLUSTER_ENDPOINT "https://<masternodeapiserverurl>:6443" must be same as the URL given during the connection creation.

    - name: GCB_DEBUG_MODE
     value: "<hex value for debug>"
    The hex value for GCB debugging must be in the 0x00[aaaa][b][c] format, where
    • aaaa is the number of pcaps
    • b is 1 to create pcap and 0 is not to create pcap
    • c is the log level ranges from 0 to 4
    - name: GCB_CNTLR_POD_NAMESPACE
     valueFrom:
          fieldRef:
              fieldPath: metadata.namespace
  2. Using the YAML file, Kubernetes automatically downloads the defined GCB Controller and deploys to a Kubernetes worker node in which traffic acquisition is required.

Deploy GCB Service and GCB PODs

Follow the below instructions to deploy GCB service and GCB PODs in your node:

  1. In your Kubernetes orchestrator, edit the GCB Service and GCB POD image name, commands and the required information in a YAML file. Following is the example data to be entered in your YAML file:
    name: gcb-http
    command:
    #gcb-http PORT mTLS-Flag(T/F) CERT_FILE KEY_FILE CA_CERT_FILE CA_VERIFY(T/F)
    - /gcb-http
    - "9443" <HTTP Port Number for ingress traffic>
    - "true" <Create a certificate (T/F)> 
    - "server-certificate-chain.pem" <SSL/TLS certificates>
    - "server-private-key.pem"<Private key for the certificate>
    - "ca-root-crt-chain.crt" <CA root certificate>
    - "false"
    - "10.244.2.132" <Default Destination IP> 
    - "0" <(0/1) Enter 1 to use the default destination IP, or enter 0 to use the rules configured by GigaVUE-FM>
    #image: gigamon/gcb-http:<version>
    imagePullPolicy: Always
    env:
    - name: GCB_SERVICE_NAME
      value: "GIGAMON_GCB_HTTP2_SERVICE"
    - name: GCB_CNTLR_SVC_DNS <GCB Controller Service Number>
      #value: "<GCB-CNTLR-SVC-NAME.GCB-CNTLR-NAMESPACE>.svc.cluster.local" 
      value: "gigamon-gcb-cntlr-service.default.svc.cluster.local"
    - name: GCB_CNTLR_REST_SVC_PORT
      value: '8443'
    - name: GCB_POD_NAMESPACE
      valueFrom:
          fieldRef:
              fieldPath: metadata.namespace
  2. Using the YAML file, Kubernetes automatically downloads and deploys the defined GCB Service and GCB POD.

Configure Traffic Policy

Once the GCB Controller is registered with GigaVUE-FM and the traffic policy is deployed to GCBs, then the GCB starts to collect the traffic and statistics periodically sends the heartbeats and statistics to GigaVUE-FM. For more information on GCB and GigaVUE-FM interaction, refer to GCB and GigaVUE‑FM Interaction